using System;
using Sinacor.Servico.Bovespa.Ordens.BusinessEntity;
using Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Response;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
	/// <summary>
	/// Data: 18/12/2007
	/// Autor: Diogo Milanez
	/// Obs: 
	/// * Classe foi renomeada de TranslateBetweenRetornoCasamentoPreBoletoAndRealizarCasamentoPreBoletoResponse
	///   para TranslateRetornoCasamento
	/// * Metodo TranslateRealizarCasamentoPreBoletoResponseToRetornoCasamentoPreBoleto foi removido
	/// 
	/// </summary>
	public static class TranslateRetornoCasamento
	{
		/// <summary>
		/// Data: 18/12/2007
		/// Autor: Diogo Milanez
		/// Obs: Metodo foi renomeado de TranslateRetornoCasamentoPreBoletoToRealizarCasamentoPreBoletoResponse
		/// para ToRealizarCasamentoResponse
		/// </summary>
		/// <param name="from"></param>
		/// <returns></returns>
		public static DataContract.Response.RealizarCasamentoResponse ToRealizarCasamentoResponse(BusinessEntity.RetornoCasamento from)
		{
			if (from == null) return null;

			Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Response.RealizarCasamentoResponse to = new DataContract.Response.RealizarCasamentoResponse();
			to.TipoRetornoCasamento = (DataContract.Enum.TipoRetornoCasamento)from.TipoRetornoCasamento;

			if (from.MensagemCasamento != null)
			{
				to.MensagemCasamento = Sinacor.Servico.Bovespa.Comum.Service.ServiceImplementation.Translator.
										TranslateMensagemValidacaoResponse.ToMensagemValidacaoResponse(from.MensagemCasamento);
			}

			if (from.MensagemVerificacaoSaldo != null)
			{
				to.MensagemVerificacaoSaldo = Sinacor.Servico.Bovespa.Comum.Service.ServiceImplementation.Translator.
										TranslateMensagemValidacaoResponse.ToMensagemValidacaoResponse(from.MensagemVerificacaoSaldo); 
			}

			if (from.MensagemVerificacaoCompliance != null)
			{
				to.MensagemVerificacaoCompliance = Sinacor.Servico.Bovespa.Comum.Service.ServiceImplementation.Translator.
										TranslateMensagemValidacaoResponse.ToMensagemValidacaoResponse(from.MensagemVerificacaoCompliance); 
			}

			return to;
		}
	}
}

